Rails World CFP, ActiveRecord::Base.with_connection, devcontainer and puma-dev support and more! | This Week in Rails
1,000人の参加者が見込まれているそうです
railtiesに関する変更です
新しいアプリを作成するときに、.devcontainer フォルダーとそのコンテンツをつくるようになりました
.devcontainer フォルダーにはリモートコンテナで開発を行うために必要なものがすべて含まれています
具体的には次の4点です
1. Kredis、ActionCable などの Redis コンテナー 2. データベース (SQLite、Postgres、MySQL または MariaDB)
3. システムテスト用のヘッドレス Chrome コンテナ
4. ローカル ディスクを使用するように構成され、プレビュー機能が動作する Active Storage
これらのファイルの生成は --skip-devcontainer オプションを使用してスキップできます
ActiveRecordに関する変更です
ActiveRecord::Baseクラスに with_connection というクラスメソッドが追加されました
このメソッドに渡されたブロックの中だけDBコネクションがつくられます
通常はリクエストやジョブが完了するまでDBコネクションを維持しますが、この with_connection メソッドを使うとブロックのなかだけDBコネクションを維持して、ブロックを抜けたらコネクションを解放できます
たとえば、処理のほとんどの時間をDB接続以外(たとえばサードパーティAPIの実行など)に使うアプリケーションでこのメソッドを使えば、DBコネクションを解放できるのでパフォーマンスが良くなる見込みがありますね